﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Infra.Entity;


namespace Infra.Common.DAO
{
   public class EstadoCivilDAL
    {

        public static void Salvar(PERESTADOCIVIL EStadoC)
        {
            using (DBInfraEntityDataContext dc = new DBInfraEntityDataContext())
            {
                if (EStadoC.CODESTADOCIVIL != 0)
                {
                    //Alterar o utilizador
                    var ESTC = dc.PERESTADOCIVILs.Single(STC => STC.CODESTADOCIVIL == EStadoC.CODESTADOCIVIL);
                    ESTC.STRESTADOCIVIL = EStadoC.STRESTADOCIVIL;
                    dc.SubmitChanges();
                }
                else
                {
                    //Gravar utilizador
                    dc.PERESTADOCIVILs.InsertOnSubmit(EStadoC);
                    dc.SubmitChanges();
                }
            }
        }


        public static void Excluir(int idEStadoCivil)
        {
            using (DBInfraEntityDataContext dc = new DBInfraEntityDataContext())
            {
                var ESTC = dc.PERESTADOCIVILs.Single(ST => ST.CODESTADOCIVIL == idEStadoCivil);
                dc.PERESTADOCIVILs.DeleteOnSubmit(ESTC);
                dc.SubmitChanges();
            }
        }




        public static List<PERESTADOCIVIL> Pesquisar(int Codigo, string EstadoCivil)
        {
            List<PERESTADOCIVIL> ListaEstadoCivil= null;

            using (DBInfraEntityDataContext dc = new DBInfraEntityDataContext())
            {
                var ESTC = from ST in dc.PERESTADOCIVILs
                           where ((Codigo.Equals(0) || Codigo.Equals(ST.CODESTADOCIVIL)) &&
                           (EstadoCivil.Equals(string.Empty) || EstadoCivil.Equals(ST.STRESTADOCIVIL.Contains(EstadoCivil))))
                           select ST;
                ListaEstadoCivil = ESTC.ToList();
            }

            return ListaEstadoCivil;
        }



        public static List<PERESTADOCIVIL> Pesquisar()
        {
            List<PERESTADOCIVIL> ListaEstadoCivil = null;

            using (DBInfraEntityDataContext dc = new DBInfraEntityDataContext())
            {
                var ESTC = from ST in dc.PERESTADOCIVILs
                           select ST;
                ListaEstadoCivil = ESTC.ToList();
            }

            return ListaEstadoCivil;
        }



    }
}
